<?php
class Mapper_Woonplaats extends DBTable{

	public function __construct(Database $db = null){
		parent::__construct("woonplaats", $db);
	}

	public function get($woonplaats_id){
		$query = "
SELECT
	woonplaats.*,
	provincie.provincie_naam,
	IFNULL((
		SELECT
			True
		FROM
			gebruiker
		WHERE woonplaats.woonplaats_id = gebruiker.woonplaats_id
		LIMIT 1
	), False) AS IsInUse
FROM woonplaats
LEFT JOIN provincie USING( provincie_id )
WHERE woonplaats_id = :woonplaats_id";

		$stmt = $this->prepare($query);
		$stmt->bindParam(":woonplaats_id", $woonplaats_id);

		return $stmt->fetchObjectOnce("Woonplaats");
	}
	
	public function getByProvincie(Provincie $provincie){
		$query = "
SELECT
	woonplaats.*,
	provincie.provincie_naam,
	True AS IsInUse
FROM woonplaats
LEFT JOIN provincie USING( provincie_id )
WHERE provincie_id = :provincie_id";
		
		$stmt = $this->prepare($query);
		$stmt->bindParam(":provincie_id", $provincie->provincie_id);
		
		return $stmt->fetchObjectAll("Woonplaats");
	}

	public function getAll(){
		$query = "
SELECT
	woonplaats.*,
	provincie.provincie_naam,
	IFNULL((
		SELECT
			True
		FROM
			gebruiker
		WHERE woonplaats.woonplaats_id = gebruiker.woonplaats_id
	LIMIT 1
	), False) AS IsInUse
FROM woonplaats
LEFT JOIN provincie USING( provincie_id )";

			return $this->prepare($query)->fetchObjectAll("Woonplaats");
		}
}